# -*- coding:utf-8 -*-
# @FileName : app\services\models\base.py
# @Time     : 2025/11/28
# @Author   : 天空之城
"""模型基类模块

此模块定义了所有AI模型的统一接口规范，所有具体模型实现都应该继承自这个基类。
"""
from abc import ABC, abstractmethod
from typing import List, Optional, Dict, Any


class BaseModel(ABC):
    """AI模型基类，定义统一的接口规范"""
    
    def __init__(self, api_key: Optional[str] = None, model: str = "default"):
        """
        初始化模型
        
        Args:
            api_key: API密钥
            model: 模型名称
        """
        self.api_key = api_key
        self.model = model
        self.endpoint = None
    
    @abstractmethod
    def generate_response(
        self, 
        messages: List[Dict[str, str]], 
        tools: Optional[List[Dict[str, Any]]] = None,
        tool_choice: str = "auto",
        temperature: float = 0.1,
        **kwargs
    ) -> Any:
        """
        生成模型响应
        
        Args:
            messages: 对话消息列表
            tools: 工具定义列表
            tool_choice: 工具选择策略
            temperature: 生成温度
            **kwargs: 其他参数
            
        Returns:
            模型生成的响应
            
        Raises:
            Exception: API调用失败时抛出
        """
        pass